export interface NoticeVo {
  /** 公告ID */
  id: number
  /** 标题 */
  title: string
  /** 内容 */
  content: string
  /** 目标类型 */
  targetType: number
  /** 目标类型名称 */
  targetTypeName: string
  /** 优先级 */
  priority: number
  /** 优先级名称 */
  priorityName: string
  /** 状态 */
  status: number
  /** 状态名称 */
  statusName: string
  /** 开始时间 */
  startTime?: string
  /** 结束时间 */
  endTime?: string
  /** 浏览量 */
  viewCount: number
  /** 是否置顶 */
  isTop: number
  /** 是否置顶名称 */
  isTopName: string
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime: string
}

export interface NoticeQueryParam {
  /** 页码 */
  pageNo: number
  /** 每页数量 */
  pageSize: number
  /** 标题 */
  title?: string
  /** 目标类型 */
  targetType?: number
  /** 优先级 */
  priority?: number
  /** 状态 */
  status?: number
  /** 是否置顶 */
  isTop?: number
}

export interface CreateNoticeRequest {
  /** 标题 */
  title: string
  /** 内容 */
  content: string
  /** 目标类型 */
  targetType: number
  /** 优先级 */
  priority?: number
  /** 状态 */
  status?: number
  /** 开始时间 */
  startTime?: string
  /** 结束时间 */
  endTime?: string
  /** 是否置顶 */
  isTop?: number
}

export interface UpdateNoticeRequest {
  /** 公告ID */
  id: number
  /** 标题 */
  title: string
  /** 内容 */
  content: string
  /** 目标类型 */
  targetType: number
  /** 优先级 */
  priority?: number
  /** 状态 */
  status?: number
  /** 开始时间 */
  startTime?: string
  /** 结束时间 */
  endTime?: string
  /** 是否置顶 */
  isTop?: number
}

export interface NoticeListResponse {
  code: number
  message: string
  data: {
    list: NoticeVo[]
    total: number
    pageNo: number
    pageSize: number
    pages: number
  }
}

export interface NoticeDetailResponse {
  code: number
  message: string
  data: NoticeVo
}

export interface CreateNoticeResponse {
  code: number
  message: string
  data: number
}

export interface UpdateNoticeResponse {
  code: number
  message: string
  data: null
}

export interface DeleteNoticeResponse {
  code: number
  message: string
  data: null
}

export interface BatchDeleteNoticeResponse {
  code: number
  message: string
  data: null
}

export interface UpdateNoticeStatusResponse {
  code: number
  message: string
  data: null
}

export interface UpdateNoticeTopResponse {
  code: number
  message: string
  data: null
}